strung
![Coverage Status](https://coveralls.io/repos/github/elidoran/node-strung/badge.svg?branch=master)
Readable stream to send a string, Writable stream to gather a string, or both.
Features:
- uses
StringDecoder
to properly decode Buffer
chunks into strings. - stores string chunks in an array to concatenate (and cache result) upon accessing property
strung.string
. This avoids concatenating each time a chunk is received. - reusable via reset/pipe.
- is a Duplex so it can be both a source and a sink at the same time.
Install
npm install --save strung
Usage
Show:
- using it as a source (a Readable with string content)
- using it as a sink (a Writable collecting string content)
- as both a source and a sink at once
- getting its class
- resetting an instance with a new string (to use as a source)
- resetting an instance with
pipe(string)
(to use as a source)
const buildStrung = require('strung')
const strung = buildStrung('some string')
strung.pipe(anotherStream)
const buildStrung = require('strung')
buildStrung('some string').pipe(anotherStream)
buildStrung.pipe('some string').pipe(anotherStream)
const buildStrung = require('strung')
const sink = Strung()
sink.on('finish', () => {
console.log('collected string:', sink.string)
})
anotherStream.pipe(sink)
const buildStrung = require('strung')
const strung = buildStrung('some string')
strung.on('finish', () => {
console.log('collected string:', strung.string)
})
strung.pipe(anotherStream).pipe(strung)
const { Strung } = require('strung')
const source = new Strung('some string')
const sink = new Strung
const strung = buildStrung('some string')
strung.on('finish', () => {
console.log('collected string:', strung.string)
strung.reset('a new string').pipe(differentStream).pipe(strung)
strung.pipe('a new string').pipe(differentStream).pipe(strung)
})
strung.pipe(anotherStream).pipe(strung)